package com.yuetong.quotation.domain;

import java.math.BigDecimal;
import java.util.List;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yuetong.common.annotation.Excel;
import com.yuetong.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 报价对象 yt_quotation_info
 *
 * @author  卓晓君
 * @date 2025-02-11
 */
public class YtQuotationInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 报价ID */
    private Long quotationId;

    /** 报价编号 */
    @Excel(name = "报价编号")
    private String quotationNo;

    /** 甲方单位 */
    @Excel(name = "甲方单位")
    private String clientUnit;

    /** 甲方联系电话 */
    @Excel(name = "甲方联系电话")
    private String clientContactPhone;

    /** 报价有效期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "报价有效期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date quotationValidity;

    /** 传真 */
    @Excel(name = "传真")
    private String fax;

    /** 收件人 */
    @Excel(name = "收件人")
    private String recipient;

    /** 付款方式 */
    @Excel(name = "付款方式")
    private String paymentMethod;

    /** 付款方式说明 */
    @Excel(name = "付款方式说明")
    private String paymentMethodDescription;

    /** 货期 */
    @Excel(name = "货期")
    private String deliveryPeriod;

    /** 施工期 */
    @Excel(name = "施工期")
    private String constructionPeriod;

    /** 施工/交货地点 */
    @Excel(name = "施工/交货地点")
    private String constructionDeliveryLocation;

    /** 发票类型 */
    @Excel(name = "发票类型")
    private String invoiceType;

    /** 总价 */
    @Excel(name = "总价")
    private BigDecimal price;

    /** 税率 */
    @Excel(name = "税率")
    private BigDecimal taxRate;

    /** 质量保修期 */
    @Excel(name = "质量保修期")
    private String qualityWarrantyPeriod;

    /** 乙方指定收款账户单位名称 */
    @Excel(name = "乙方指定收款账户单位名称")
    private String payeeUnitName;

    /** 开户行 */
    @Excel(name = "开户行")
    private String payeeBank;

    /** 账号 */
    @Excel(name = "账号")
    private String payeeAccountNumber;

    /** 税号 */
    @Excel(name = "税号")
    private String taxNumber;

    /** 报价单位（乙方） */
    @Excel(name = "报价单位", readConverterExp = "乙=方")
    private String quotingUnit;

    /** 联系人 */
    @Excel(name = "联系人")
    private String quotingContact;

    /** 电话 */
    @Excel(name = "电话")
    private String quotingContactPhone;

    /** 报价日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "报价日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date quotationDate;

    /** 专用章 */
    @Excel(name = "专用章")
    private String specialSeal;

    /** 甲方确认章 */
    @Excel(name = "甲方确认章")
    private String clientConfirmationSeal;

    /** 是否同意报价方案 */
    @Excel(name = "是否同意报价方案")
    private String isAgreeQuotation;

    /** 其他意见 */
    @Excel(name = "其他意见")
    private String otherOpinions;

    /** 场所状态 */
    @Excel(name = "场所状态")
    private String status;

    /** 创建人 */
    @Excel(name = "创建人")
    private String createdBy;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdTime;

    /** 更新人 */
    @Excel(name = "更新人")
    private String updatedBy;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedTime;

    /** 删除标志 */
    private Integer delFlag;

    /** 报价详情明细信息 */
    private List<YtQuotationDetail> ytQuotationDetailList;

    public void setQuotationId(Long quotationId)
    {
        this.quotationId = quotationId;
    }

    public Long getQuotationId()
    {
        return quotationId;
    }
    public void setQuotationNo(String quotationNo)
    {
        this.quotationNo = quotationNo;
    }

    public String getQuotationNo()
    {
        return quotationNo;
    }
    public void setClientUnit(String clientUnit)
    {
        this.clientUnit = clientUnit;
    }

    public String getClientUnit()
    {
        return clientUnit;
    }
    public void setClientContactPhone(String clientContactPhone)
    {
        this.clientContactPhone = clientContactPhone;
    }

    public String getClientContactPhone()
    {
        return clientContactPhone;
    }
    public void setQuotationValidity(Date quotationValidity)
    {
        this.quotationValidity = quotationValidity;
    }

    public Date getQuotationValidity()
    {
        return quotationValidity;
    }
    public void setFax(String fax)
    {
        this.fax = fax;
    }

    public String getFax()
    {
        return fax;
    }
    public void setRecipient(String recipient)
    {
        this.recipient = recipient;
    }

    public String getRecipient()
    {
        return recipient;
    }
    public void setPaymentMethod(String paymentMethod)
    {
        this.paymentMethod = paymentMethod;
    }

    public String getPaymentMethod()
    {
        return paymentMethod;
    }
    public void setPaymentMethodDescription(String paymentMethodDescription)
    {
        this.paymentMethodDescription = paymentMethodDescription;
    }

    public String getPaymentMethodDescription()
    {
        return paymentMethodDescription;
    }
    public void setDeliveryPeriod(String deliveryPeriod)
    {
        this.deliveryPeriod = deliveryPeriod;
    }

    public String getDeliveryPeriod()
    {
        return deliveryPeriod;
    }
    public void setConstructionPeriod(String constructionPeriod)
    {
        this.constructionPeriod = constructionPeriod;
    }

    public String getConstructionPeriod()
    {
        return constructionPeriod;
    }
    public void setConstructionDeliveryLocation(String constructionDeliveryLocation)
    {
        this.constructionDeliveryLocation = constructionDeliveryLocation;
    }

    public String getConstructionDeliveryLocation()
    {
        return constructionDeliveryLocation;
    }
    public void setInvoiceType(String invoiceType)
    {
        this.invoiceType = invoiceType;
    }

    public String getInvoiceType()
    {
        return invoiceType;
    }
    public void setPrice(BigDecimal price)
    {
        this.price = price;
    }

    public BigDecimal getPrice()
    {
        return price;
    }
    public void setTaxRate(BigDecimal taxRate)
    {
        this.taxRate = taxRate;
    }

    public BigDecimal getTaxRate()
    {
        return taxRate;
    }
    public void setQualityWarrantyPeriod(String qualityWarrantyPeriod)
    {
        this.qualityWarrantyPeriod = qualityWarrantyPeriod;
    }

    public String getQualityWarrantyPeriod()
    {
        return qualityWarrantyPeriod;
    }
    public void setPayeeUnitName(String payeeUnitName)
    {
        this.payeeUnitName = payeeUnitName;
    }

    public String getPayeeUnitName()
    {
        return payeeUnitName;
    }
    public void setPayeeBank(String payeeBank)
    {
        this.payeeBank = payeeBank;
    }

    public String getPayeeBank()
    {
        return payeeBank;
    }
    public void setPayeeAccountNumber(String payeeAccountNumber)
    {
        this.payeeAccountNumber = payeeAccountNumber;
    }

    public String getPayeeAccountNumber()
    {
        return payeeAccountNumber;
    }
    public void setTaxNumber(String taxNumber)
    {
        this.taxNumber = taxNumber;
    }

    public String getTaxNumber()
    {
        return taxNumber;
    }
    public void setQuotingUnit(String quotingUnit)
    {
        this.quotingUnit = quotingUnit;
    }

    public String getQuotingUnit()
    {
        return quotingUnit;
    }
    public void setQuotingContact(String quotingContact)
    {
        this.quotingContact = quotingContact;
    }

    public String getQuotingContact()
    {
        return quotingContact;
    }
    public void setQuotingContactPhone(String quotingContactPhone)
    {
        this.quotingContactPhone = quotingContactPhone;
    }

    public String getQuotingContactPhone()
    {
        return quotingContactPhone;
    }
    public void setQuotationDate(Date quotationDate)
    {
        this.quotationDate = quotationDate;
    }

    public Date getQuotationDate()
    {
        return quotationDate;
    }
    public void setSpecialSeal(String specialSeal)
    {
        this.specialSeal = specialSeal;
    }

    public String getSpecialSeal()
    {
        return specialSeal;
    }
    public void setClientConfirmationSeal(String clientConfirmationSeal)
    {
        this.clientConfirmationSeal = clientConfirmationSeal;
    }

    public String getClientConfirmationSeal()
    {
        return clientConfirmationSeal;
    }
    public void setIsAgreeQuotation(String isAgreeQuotation)
    {
        this.isAgreeQuotation = isAgreeQuotation;
    }

    public String getIsAgreeQuotation()
    {
        return isAgreeQuotation;
    }
    public void setOtherOpinions(String otherOpinions)
    {
        this.otherOpinions = otherOpinions;
    }

    public String getOtherOpinions()
    {
        return otherOpinions;
    }
    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }
    public void setCreatedBy(String createdBy)
    {
        this.createdBy = createdBy;
    }

    public String getCreatedBy()
    {
        return createdBy;
    }
    public void setCreatedTime(Date createdTime)
    {
        this.createdTime = createdTime;
    }

    public Date getCreatedTime()
    {
        return createdTime;
    }
    public void setUpdatedBy(String updatedBy)
    {
        this.updatedBy = updatedBy;
    }

    public String getUpdatedBy()
    {
        return updatedBy;
    }
    public void setUpdatedTime(Date updatedTime)
    {
        this.updatedTime = updatedTime;
    }

    public Date getUpdatedTime()
    {
        return updatedTime;
    }
    public void setDelFlag(Integer delFlag)
    {
        this.delFlag = delFlag;
    }

    public Integer getDelFlag()
    {
        return delFlag;
    }

    public List<YtQuotationDetail> getYtQuotationDetailList()
    {
        return ytQuotationDetailList;
    }

    public void setYtQuotationDetailList(List<YtQuotationDetail> ytQuotationDetailList)
    {
        this.ytQuotationDetailList = ytQuotationDetailList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("quotationId", getQuotationId())
            .append("quotationNo", getQuotationNo())
            .append("clientUnit", getClientUnit())
            .append("clientContactPhone", getClientContactPhone())
            .append("quotationValidity", getQuotationValidity())
            .append("fax", getFax())
            .append("recipient", getRecipient())
            .append("paymentMethod", getPaymentMethod())
            .append("paymentMethodDescription", getPaymentMethodDescription())
            .append("deliveryPeriod", getDeliveryPeriod())
            .append("constructionPeriod", getConstructionPeriod())
            .append("constructionDeliveryLocation", getConstructionDeliveryLocation())
            .append("invoiceType", getInvoiceType())
            .append("price", getPrice())
            .append("taxRate", getTaxRate())
            .append("qualityWarrantyPeriod", getQualityWarrantyPeriod())
            .append("payeeUnitName", getPayeeUnitName())
            .append("payeeBank", getPayeeBank())
            .append("payeeAccountNumber", getPayeeAccountNumber())
            .append("taxNumber", getTaxNumber())
            .append("quotingUnit", getQuotingUnit())
            .append("quotingContact", getQuotingContact())
            .append("quotingContactPhone", getQuotingContactPhone())
            .append("quotationDate", getQuotationDate())
            .append("specialSeal", getSpecialSeal())
            .append("clientConfirmationSeal", getClientConfirmationSeal())
            .append("isAgreeQuotation", getIsAgreeQuotation())
            .append("otherOpinions", getOtherOpinions())
            .append("status", getStatus())
            .append("remark", getRemark())
            .append("createdBy", getCreatedBy())
            .append("createdTime", getCreatedTime())
            .append("updatedBy", getUpdatedBy())
            .append("updatedTime", getUpdatedTime())
            .append("delFlag", getDelFlag())
            .append("ytQuotationDetailList", getYtQuotationDetailList())
            .toString();
    }
}
